/*
 * 文件名称:          LongIDKey.java
 * 版权所有@ 2016——2017 无锡聆音科技有限公司，保留所有权利
 * 时间:             2016年7月27日 下午9:21:11
 */
package com.lingyin.database.transaction.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

/**
 *  long值为主键的方式，对于oracle数据库，如果直接采用该
 *  对象中的id，则主键id的编号是共用的，即是表中的id
 *  是统一编号的，如果需要每个表单独编号，则需要重新对
 *  id的序列产生器命名。
 * 
 * <p>
 * <p>
 * @项目        hibernate.database.transaction
 * <p>
 * @作者:       徐文平
 * <p>
 * @日期:       2014-8-29
 * <p>
 * @负责人:     徐文平
 * <p>
 * @负责小组:   
 * <p>
 * <p>
 */

@SuppressWarnings("serial")
@ MappedSuperclass
public class LongIDKey  implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "seq_longidkey_gen")
    @GenericGenerator(name = "seq_longidkey_gen", strategy = "native", 
            parameters = { @Parameter(name = "sequence", value = "SEQ_LONGIDKEY_ID") })
    protected Long id;
    
    /**
     * 
     */
    public LongIDKey()
    {
    }
    
    /**
     * 得到id
     *
     * @return id 主键ID
     */
    public Long getId()
    {
        return id;
    }

    /**
     * 设置id
     *
     * @param id 主键ID
     */
    public void setId(Long id)
    {
        this.id = id;
    }

}
